
add_executable(llama_infer main.cpp)
target_link_directories(llama_infer PUBLIC ${PROJECT_SOURCE_DIR}/lib)
target_link_libraries(llama_infer llama)
if (LLAMA3_SUPPORT)
    message(STATUS "LINK LLAMA3 SUPPORT")
    find_package(absl REQUIRED)
    find_package(re2 REQUIRED)
    find_package(nlohmann_json REQUIRED)
    target_link_libraries(llama_infer absl::base re2::re2 nlohmann_json::nlohmann_json)
endif ()
set_target_properties(llama_infer PROPERTIES CUDA_SEPARABLE_COMPILATION ON)

if (QWEN2_SUPPORT)
    message(STATUS "LINK QWEN2 SUPPORT")
    add_executable(qwen_infer main_qwen.cpp)
    target_link_directories(qwen_infer PUBLIC ${PROJECT_SOURCE_DIR}/lib)
    find_package(absl REQUIRED)
    find_package(re2 REQUIRED)
    find_package(nlohmann_json REQUIRED)
    target_link_libraries(qwen_infer llama)
    target_link_libraries(qwen_infer absl::base re2::re2 nlohmann_json::nlohmann_json)
    set_target_properties(qwen_infer PROPERTIES CUDA_SEPARABLE_COMPILATION ON)
endif()